动画系统
使用动画系统,您可以根据时间动画化属性、控制回放以及将属性值更改映射到动画。
Kanzi 动画系统包括:
- 动画用于定义如何对属性进行动画化。例如,一个动画定义了如何对颜色从红色变为绿色或浮点值从 7 变为 11 的过程进行动画化。在 Kanzi 中,您可以创建以下类型的动画:
- 从-至动画定义了将某个属性从哪个值更改为哪个值。您可以忽略这两个值中的任何一个,以便从当前值动画化或者动画化至属性的当前值。从-至动画使用一条缓动曲线来定义动画的变化速度。您可以使用 Kanzi 附带其中一种缓动曲线,也可以定义自己的缓动曲线。
- 关键帧动画使用的关键帧定义了属性值以及动画要在何时达到值。在Kanzi 中,您可以创建线性、步进以及贝塞尔样条关键帧。
- 时间线用于将动画映射到时间和要动画化的对象。动画本身不会动画化对象,时间线会。在 Kanzi 中,您可以创建以下类型的时间线:
- 属性时间线会将动画应用于对象的属性。例如,要更改图像 (Image) 节点的布局尺寸,请使用属性时间线对节点的布局宽度 (Layout Width) 和布局高度 (Layout Height) 属性进行动画化。
- 属性字段时间线会将动画应用于对象属性的一个或多个域。例如,您可以为每个颜色通道使用单独的动画,以更改文本块 (Text Block) 节点中的文本的颜色。
- 并行时间线允许您将 Kanzi 同时播放的那些时间线分组。当最后一个子时间线结束时,并行时间线即告结束。使用时间线可以组织时间线集合和创建时间线合成。
- 动画播放器接收您可以连同动作一起发送的消息,并生成您使用触发器拦截的消息。例如,您可以发送消息以开始、停止和暂停回放,还可以接收消息以了解动画回放何时开始、停止或结束。
Kanzi Studio 中提供了以下动画播放器:- 动画播放器 (Animation Player)。动画播放器 (Animation Player) 可用于应用动画到对象或场景图,并控制动画化的对象。请参阅 播放关键帧动画。
- 属性驱动的动画播放器 (Property Driven Animation Player)。属性驱动的动画播放器 (Property Driven Animation Player) 可利用属性值来控制动画中的时间进度。请参阅 创建属性驱动的动画。
- 属性目标插值器 (Property Target Interpolator)。属性目标插值器 (Property Target Interpolator) 可用于动态设置属性的目标值,属性目标插值器 (Property Target Interpolator) 会随着时间的推移将当前值插值到目标值。请参阅 插值属性值。
属性时间线动画化的工作原理
属性时间线使用 Kanzi 属性管理器修改器堆栈。Kanzi 应用动画到属性的基值或者堆栈中的上一个修改器(可能是另一个动画)。从而将影响同一个属性的动画堆叠在一起。
当动画结束时,它仍会保持活动状态。用于描述动画的对象依然存在,以使修改器能够应要求提供属性值。当您使用 Kanzi Engine 时,API 对某个对象应用多个动画时,您必须将它们移除,否则它们会持续消耗资源。状态机和动画播放器 (Animation Player) 等其他系统,会跟踪动画本身,因此无需您跟踪。
动画化对象的工作流程
要动画化对象:
- 创建一个动画:
- 对于从-至动画,设置要从哪个值到哪个值对属性进行动画化,并设置动画的持续时间和缓动曲线。
- 对于关键帧动画,为动画填充关键帧,以设置动画必须达到的属性值,并使用线性关键帧、步进关键帧或贝塞尔样条关键帧。
- 创建一个时间线。
- 将动画分配给时间线。
- 回放动画。
另请参阅
使用 Kanzi Engine API 创建动画和时间线
动画
动画最佳实践
Kanzi 基础知识
打开导航